iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
自我挑戰組

學習C#續系列 第 8

Day 8: 抽象類別(Abstract Class)、密封類別(Sealed Class)、介面(Interface)

  • 分享至 

  • xImage
  •  

抽象類別(Abstract Class):

  • 使用 abstract 關鍵字宣告,代表不完整的概念模型,無法直接透過 new 實例化。
  • 可以同時包含「抽象成員(只有簽章沒有主體)」與「具體成員(有完整實作內容)」。
  • 子類別若非抽象類別,就必須使用 override 實作父類別中所有標記為 abstract 的成員。

密封類別(Sealed Class,俗稱「蜜蜂類別 / 斷子絕孫類別」):

  • 使用 sealed 關鍵字宣告,作用是禁止其他類別繼承它(防止擴充)。
  • 亦可用於方法上(搭配 override sealed),防止該方法在後續子類別中被再次覆寫。
  • 常見用途:系統安全性設定、效能優化(編譯器可做去虛擬化優化)、設計核心不可變類別(如 C# 內建的 string 即為 sealed class)。

介面(Interface):

  • 使用 interface 關鍵字宣告,約定名稱通常以大寫 I 開頭(例如 IDriveable、IDisposable)。
  • 本質是一種「行為契約(Contract)」,只規範「要做什麼」,不干涉「怎麼做」。
  • 介面成員預設存取層級為 public,且實作的類別必須提供所有成員的實體內容。
  • 突破單一繼承限制:一個類別只能繼承一個父類別,但可以實作多個介面。

實作範例
https://ithelp.ithome.com.tw/upload/images/20260921/20178925DwzIP0a8uX.png
https://ithelp.ithome.com.tw/upload/images/20260921/20178925ZIpCellXSF.png
https://ithelp.ithome.com.tw/upload/images/20260921/2017892594imVltmcf.png


上一篇
Day 7: 多型(Polymorphism)
系列文
學習C#續8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言